import wepy from 'wepy'

export default class OrderList extends wepy.mixin {
  data = {
    active: 0,
    // 全部 订单列表
    allOrderList: [],
    // 待付款 订单列表
    waitOrderList: [],
    // 已付款 订单列表
    finishOrderList: []
  }

  onLoad() {
    console.log('1')
    this.getOrderList(this.active)
  }

  async getOrderList(type) {
    const { data: res } = await wepy.get('/my/orders/all', {
      type: type + 1
    })

    if (res.meta.status !== 200) {
      return wepy.baseToast('订单列表获取失败！')
    }

    // 为什么需要对数据进行格式化
    // 之前后台返回的数据是字符串形式，不符合业务需求
    // 需要将数据抓换成前端渲染所需要的数组或对象形式即可2
    // 在实际开发中，后台给返回的数据，经常会出现不符合前端渲染的情况？？
    // 怎么处理？
    // 数组方式，循环、递归……等等一些方法对数据进行处理、拼接、组合成前端需要使用的数据才可以
    // 在实际开始中，其实代码、项目没有咱们想的那么复杂
    // 就看有没有掌握 js 里面的一些核心（数组方法、对象方法、递归方法等等一些处理数据的方式）
    // 前端大部分都是对数据进行处理，这一部分稍微有点复杂
    res.message.orders.forEach(item => {
      item.order_detail = JSON.parse(item.order_detail)
    })

    if(this.active === 0) {
      this.allOrderList = res.message.orders
    } else if (this.active === 1) {
      this.waitOrderList = res.message.orders
    } else if (this.active === 2) {
      this.finishOrderList = res.message.orders
    }

    this.$apply()
    console.log(res)
  }

  methods = {
    onChange(e) {
      this.active = e.detail.index
      this.getOrderList(this.active)
    }
  }
}
